package com.amado.course28Exception;

/*
继承RuntimeException的叫做运行时异常，不需要强制捕获异常
继承Exception的为检查性异常，必须捕获
捕获异常使用try catch finally


try {
	//代码
} catch (ArithmeticException e) {
} finally {
	System.out.println("最终执行");
}
 */
public class S01ExceptionTest {
	public static void main(String[] args) {
		try {
			int a = 0;
//			if (a != 0) {
			System.out.println(1 / a);
//			}
		} catch (ArithmeticException e) {
			// 捕获异常，可以是当前类的异常，当前类异常的父类
			e.printStackTrace();
			System.out.println("算术异常捕获异常");
		} catch (NullPointerException e) {
			e.printStackTrace();
			System.out.println("空指针异常捕获异常");
			// 最后的Exception肯定会进
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("其它捕获异常");
		} finally {
			//finally 无论是否异常都会执行
			//有异常时的步骤：try catch finally
			//没有异常时步骤:try finally
			System.out.println("最终执行");
		}
		System.out.println("完成");
		for (int i = 0; i < 10; i++) {
			System.out.println(i);
		}
	}

	public void print(Object a) {

	}

	public void printStr(String a) {

	}
}
